1. 컨퍼런스 참여 계기

플러터 개발자는 어떤 사람들일까?

나는 회사에서 홀로 Flutter로 작은 웹 프로덕트를 만들고 있다. Flutter 의 매력은 하나의 코드로 여러 플랫폼을 지원하는데에 있는데, 나는 그 정수를 느끼지 못하고 있다. 기업 기술 블로그나 구직 사이트를 둘러보면 Flutter로 제품을 만드는 곳은 꽤 있다.

다른 사람들이 Native 대신 Flutter를 실제 제품에 사용하는 이유는 뭘까? 그들도 나와 비슷한 곳에서 어려움을 겪고 있을까? 많은 것이 궁금하던 차에, 대규모 Flutter 컨퍼런스가 열린다는 소식을 들었다.

Flutter 활용 사례부터 내부 구조 톺아보는 세션까지 모든 주제가 흥미로웠다. 쉬는 시간이 거의 없다는 것에 놀라긴 했지만, 좋은 연사분들로 꽉꽉 채운것이라 생각해, 당장 등록 클릭 클릭! 🖱️✨

2. 인상 깊었던 세션

모든 세션이 훌륭했지만, 그 중에서도 우리 팀에 공유할만한 내용이 담긴 세션을 정리해본다.

Flutter 웹을 활용한 제품 개발 환경 개선 사례

Flutter Web이 모바일 앱 데모 버전으로서 유용하다.

2000년부터 운영된 데마이칸이 2020년에 라인에 인수되었다. 이에 오래된 데마에칸 프로젝트 코드 레거시 청산이 불가피했다. 당시 상황에서 필요한 모든 조건을 갖춘 프레임워크가 Flutter였기 때문에, 데마에칸 팀은 Flutter로 Recode 하는 방식으로 레거시를 청산하기로 했다.

Flutter가 웹을 지원한다는 건 큰 장점이었다. 웹으로 프로토타입을 만들어 확인하면, 개발 이후 피드백을 받는데에 걸리는 시간이 대폭 줄어들기 때문이다. 세계 각지에 흩어져 있는 데마이칸 팀원들에게 테스트 기기를 일일이 전달하기 보다는, 웹으로 플랫폼 관계없이 PoC를 진행하는 것이 훨씬 효율적이다. 더불어서, Flutter를 사용해 프로토타입을 웹으로 만들어두면, 모바일로 전환하는 것은 크게 어렵지 않다.

물론, Flutter 패키지 중 웹 플랫폼을 지원하지 않는 것들이 있어, CORS 문제 등 기능 개발과 별개로 웹 도메인에서 문제가 발생하기도 한다. 하지만, Flutter를 사용한 개발은 상기 어려움을 상쇄할 정도로 제품 개발 프로세스를 효율적으로 만들었다고 한다.

스토어 심사 없이 앱 배포하기

ShoreBird를 사용하면, Flutter 모바일 앱을 스토어 심사없이 배포할 수 있다.

Shorebird는 구글 Flutter 개발자들이 회사를 떠나 만든 프로젝트로, Flutter 프로젝트 코드 푸시 기능을 제공한다.

코드 푸시(Code Push) 란 MS에서 제공하는 서비스로, 모바일 앱 프로젝트 수정사항을 스토어 검수 과정 없이 바로 사용자들에게 새 버전을 배포하는 서비스다. 주로 react-native 프로젝트에서 많이 사용한다고 한다.

ShoreBird를 사용해 코드를 배포하는 과정은 다음과 같다. (참고: ShoreBird Docs/Get Started)

  1. ShoreBird CLI 설치

    curl --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh -sSf | bash
  2. Flutter 프로젝트 생성

    flutter create my_shorebird_app
    cd my_shorebird_app
    flutter run
  3. ShoreBird 설치

    shorebird init
  4. 배포하기

    shorebird release android
  5. 수정사항 반영하기

    shorebird patch android

세션에서 ShoreBird의 설립자 Eric Seidel이 직접 라이브로 설치부터 패치까지 진행했는데, 생각보다 단순한 과정으로 배포가 가능해서 놀랐다. 다음에 사이드 프로젝트를 진행하게 된다면, 반드시 사용해보고 싶다!

Flutter에서 Go Lang 사용하기

ffi 패키지를 사용하여, Dart에서 C 라이브러리를 불러와 사용할 수 있다.

“FFI로 연결하는 고(Go)와 플러터 - 리쳉” 세션에서는 Go 언어를 Flutter 프로젝트에서 사용하는 방법에 대해 소개했다. Flutter 프로젝트에서 Go 언어 코드를 사용하기 위해서 ffi(foreign function interface) 패키지를 이용하는데, Go 언어 뿐 아니라 C API를 지원하는 언어는 무엇이든 사용할 수 있다고 한다. Go 언어는 아니지만, 구글 코드 랩의 Flutter에서 ffi를 사용하여 JavaScript REPL 구현하기ffi패키지 사용 방법을 간단히 확인할 수 있다. ffi를 사용해 Flutter에서도 low-level 코드를 활용한 프로젝트를 만들 수 있다는 사실이 새로웠다. pub.dev 패키지 영역에서 벗어나 새로운 시도들을 해볼 수 있겠다는 생각이 들었다.

3. 마치며

위에 언급한 세가지 세션 이외에도 Flutter에서 Web RTC를 사용해본 후기, Flutter 렌더링 방식에 대한 이야기 등 흥미로운 주제들이 많았다. 네트워킹이나 핸즈온 세션이 없었지만, 전체 세션이 알차서 집에 돌아오는 길에 내내 뿌듯했다. 오늘 알게된 내용들을 바탕으로 회사 제품이나 사이드 프로젝트에 적극적으로 활용해보고 싶다는 생각을 하며, 집에 돌아왔다.

참고 링크